package com.zyz.pojo;
import lombok.Data;// 引入 Lombok 的 @Data 注解，自动生成 getter/setter、toString、equals、hashCode 等方法
// 指定该类是一个 JPA 实体类，对应数据库中的一张表
import jakarta.persistence.Entity;
// 指定该实体映射到数据库中名为 "users" 的表
import jakarta.persistence.Table;
// 指定主键字段
import jakarta.persistence.Id;
// 指定主键的生成策略为数据库自增（适用于 MySQL 的 AUTO_INCREMENT）
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
// 指定字段和数据库表中列的映射规则
import jakarta.persistence.Column;
@Data // Lombok 注解：自动生成 getter、setter、toString、equals、hashCode 等方法，简化代码
@Entity // JPA 注解：标记这是一个实体类（Entity），对应数据库中的一张表
@Table(name = "users") // JPA 注解：指定该实体映射的数据库表名为 "users"
public class Users {
    @Id // JPA 注解：指定该字段为主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    // JPA 注解：指定主键生成策略为数据库自增（MySQL 中常见）
    private Long id; // 用户的唯一标识（主键）

    @Column(nullable = false, unique = true, length = 50)
    // JPA 注解：映射数据库字段 username，不能为空、唯一，最大长度 50
    private String username; // 用户名

    @Column(nullable = false, length = 100)
    // JPA 注解：映射数据库字段 password，不能为空，最大长度 100
    private String password; // 用户密码（一般存储加密值）

    @Column(length = 100)
    // JPA 注解：映射数据库字段 email，最大长度 100，允许为空
    private String email; // 用户邮箱（可选字段）
}
